<?php namespace Admin\Controller; 
/**
 *  文章分类控制器
 */
class CategoryController extends CommonController{
		private $category;
		public function __init(){
				//执行父类的构造方法，避免方法覆盖
				parent::__init();
				$this->category = new \Common\Model\Category();
		}
		/**
    	 * 分类列表
    	 */
    	public function catelist(){
    			//实例化文章模型
    			$article = new \Common\Model\Article();
    			//查询出所有数据
    			$data = $this->category->get();
    			//给有文章的分类压一个状态字段
    			foreach ($data as $k => $v){
    					$data[$k]['total'] = $article->where("category_cid={$v['cid']}")->count();
    			}
    			if (!$data) $this->success('还没有数据哦,快去添加吧^_^',U('add'));
    			//树型结构（显得更有层次）
    			$data = Data::tree($data,'cname');
    			//分配变量
    			$this->assign('data',$data);
    			//载入模板
       			$this->display();
    	}
    	
    	//分类添加
    	public function add(){
    			if (IS_POST) {
    					//验证通过，添加成功
    					if ($this->category->store()) {
    							$this->success('添加成功',U('catelist'));
    					}
    					//否则验证失败，提示错误信息
    					$this->error($this->category->getError());
    			}
    			//查询出所有的栏目
    			$data = $this->category->get();
    			$data = Data::tree($data,'cname');
    			$this->assign('data', $data);
    		 	$this->display();
    	}
    	
    	//添加字分类
    	public function addSon(){
    			if(IS_POST){
    					if (!$this->category->store()) {
    							$this->error($this->category->getError());
    					}
    					$this->success('添加成功,正在为您跳转...',U('catelist'));
    			}
    			//查询出所属分类，并且分配
    			$where = array('cid' =>Q('get.cid',0,'intval'));
	    		$data = $this->category->where($where)->field('cid,cname')->find();
	    		$this->assign('data', $data);
    			$this->display();
    	}
    	
    	//分类编辑
    	public function edit(){
    			//修改数据
    			if (IS_POST) {
    					//接受表单数据
    					$cid = Q('post.cid',0,'intval');
    					if (!$this->category->edit($cid)) {
    							$this->error($this->category->getError());
    					}
    					$this->success('操作成功,马上为您跳转...',U('catelist'));
    			}
    			//获取分类ID
    			$cid = Q('get.cid',0,'intval');
    			//查询就数据,分配到模板
    			$oldData = $this->category->where(array('cid' =>$cid))->find();
    			$this->assign('oldData',$oldData);
    			//获取所属分类（除去自身和自身所有的子集）
    			$category = $this->category->getNoMine($cid);
    			//分配所属分类数据到模板
    			$this->assign('category',$category);
    			$this->display();
    	}
    	
    	//分类删除
    	public function del(){
    			//获取GET参数
    			$cid = Q('get.cid',0,'intval');
    			//调用模型定义的删除方法
    			if ($this->category->del($cid)) {
    					$this->success('删除成功',U('catelist'));
    			}
    	}
}
